#include <iostream>
#include <cstdio>
#include <map>
#include <algorithm>
#include <iomanip>
using namespace std;
struct node {
    double one,two,three;
};
bool cmp1(node a, node b) {
    return a.three < b.three;
}
int main() {
    int m,n;
    while(cin>>m>>n && m>-1&&n>-1) {
        node a[n];
        for(int i=0; i<n; i++){
            cin>>a[i].one>>a[i].two;
            a[i].three=a[i].two/a[i].one;
        }
        sort(a,a+n,cmp1);
        double count=0;
        int i;
        for(i=0; i<n&&m>a[i].two; i++) {
            m=m-a[i].two;
            count=count+a[i].one;
        }
        if(i<n)count=count+a[i].one*(m/a[i].two);
        printf("%.3lf\n",count);
        //cout<<fixed<<setprecision(3)<<count<<endl;
    }
    return 0;
}
